Importando bibliotecas que serão utilizadas
library(xts)
library(dplyr)
library(purrr)
library(stats)
library(plotly)
library(janitor)
library(ggplot2)
library(seasonal)
library(forecast)
library(lubridate)
source("./source/multiplot.R")
data <- readxl::read_excel(path = "./inputs/retail.xlsx", range = "A2:GH383") %>%
janitor::clean_names() %>%
dplyr::mutate(date = as.Date(series_id)) %>%
dplyr::select(-series_id)
data_ts <- data$a3349398a %>%
stats::ts(
start = c(
lubridate::year(dplyr::first(data$date)),
lubridate::month(dplyr::first(data$date))
),
end = c(
lubridate::year(dplyr::last(data$date)),
lubridate::month(dplyr::last(data$date))
),
frequency = 12
)
A partir das visualizações obtidas da série, é possível observar que a mesma apresenta uma tendência de crescimento linear, alguns poucos ciclos e bastante sazonalidade.
data_fit <- seasonal::seas(data_ts, x11 = "")
Plotando o resultado
data_fit %>% forecast::autoplot()
p <- data_fit %>% as.data.frame() %>%
ggplot(aes(x = date, y = final)) +
geom_line() +
labs(title = "Série decomposta com o método X11")
ggplotly(p)
Alguns pequenos outliers apareceram, como por exemplo na data 2009-11.